昇腾 NPU 常见问题
最后更新:2026/08/17。
本文档汇总了在华为昇腾 NPU 上运行 ROLL 时可能遇到的常见问题及解决方案。
Docker 与环境
容器内 NPU 不可见
现象: 容器内执行 npu-smi info 无设备返回或报错。
解决方案: 确保所有必需的设备和管理路径已正确挂载,检查以下项:
docker run命令中包含所有--device /dev/davinciX条目。- 管理设备(
/dev/davinci_manager、/dev/devmm_svm、/dev/hisi_hdc)已挂载。 - 宿主机驱动路径已挂载:
/usr/local/Ascend/driver、/usr/local/Ascend/add-ons、/usr/local/dcmi。 - 宿主机上已安装昇腾 NPU 驱动,且宿主机上
npu-smi info可正常工作。
vLLM-Ascend 导入错误
现象: import vllm_ascend 失败,或 vLLM 无法检测到 NPU 设备。
解决方案: 验证 CANN 环境是否正确加载:
source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /usr/local/Ascend/nnal/atb/set_env.sh
这些命令在 Docker 镜像构建时已自动添加到 /root/.bashrc。如果切换到非 root 用户,可能需要手动执行。
torch_npu 无法使用
现象: torch.npu.is_available() 返回 False,或无法创建 NPU 张量。
解决方案:
- 确认
torch_npu已安装:pip show torch_npu - 检查 CANN 环境:
echo $ASCEND_HOME_PATH - 如未加载 CANN 环境,手动执行:
source /usr/local/Ascend/ascend-toolkit/set_env.sh
- 验证 NPU 可见性:
npu-smi info - 查询
torch和torch_npu版本是否匹配:pip list | grep torch
SOC 版本不匹配
现象: 安装或运行 vLLM-Ascend 时出现 SOC_VERSION not supported 或 Ascend device not found 等错误。
解决方案: 确保使用了与硬件匹配的预构建镜像:
- Atlas 900 A2 PODc → 使用
roll:v0.3-cann9.1.0-torch_npu2.10.0.post4-910b-ubuntu22.04-py3.12(ascend910b1) - Atlas 900 A3 PODc → 使用
roll:v0.3-cann9.1.0-torch_npu2.10.0.post4-a3-ubuntu22.04-py3.12(ascend910_9391)
当前仓库包含用于构建自定义镜像的 docker/Dockerfile.A2 和 docker/Dockerfile.A3。如果维护自定义镜像,请确保 SOC 版本与目标硬件匹配。
禁用 FRACTAL_NZ模式
现象: 在强化学习中开启NZ优化模式很有可能导致精度问题,vllm_ascend中存在该校验,若 开启会出现 ValueError: FRACTAL_NZ mode is enabled. This may cause model parameter precision issues in the RL scenarios.错误
解决方案: 启动脚本前,添加环境变量,禁用NZ:
export VLLM_ASCEND_ENABLE_NZ=0
HCCL参数面端口绑定失败
现象: 当前rank或进程在通信算子参数面建链时绑定device侧网卡端口失败,端口被占用,出现 The IP address XXXX and port XXXX have already been bound错误
解决方案:
- HCCL使用device侧网卡的端口时默认需绑定16666端口,因此若有多个进程执行在同一个device上,且均会调用HCCL的通信算子接口,那么就会出现端口已被其他进程绑定导致失败的问题。
- 此时可先从业务上排查多个进程跑在同一个device上是否符合任务预期,若符合任务预期结果,可通过配置HCCL_NPU_SOCKET_PORT_RANGE环境变量使能多进程场景,如:
export HCCL_NPU_SOCKET_PORT_RANGE="auto"
依赖冲突
triton 导入错误
现象: import triton 失败,或与 triton-ascend 冲突。
解决方案: 预构建昇腾镜像使用 triton-ascend,不使用标准 triton 包。如果误装了错误的 triton 包,请执行:
pip uninstall -y triton triton-ascend
pip install triton-ascend==3.2.1 --extra-index-url https://mirrors.huaweicloud.com/ascend/repos/pypi